import random

# 初始化电视台信息
tv_station = {
    "资金": 100000,
    "声誉": 50,
    "节目列表": [],
    "广告收入": 0
}

# 节目类型及相关信息
program_types = {
    "新闻节目": {
        "制作成本": 5000,
        "基础收视率": 20,
        "广告单价": 200
    },
    "综艺节目": {
        "制作成本": 8000,
        "基础收视率": 30,
        "广告单价": 300
    },
    "电视剧": {
        "制作成本": 12000,
        "基础收视率": 40,
        "广告单价": 400
    }
}


# 显示电视台状态
def show_tv_station_status():
    print("电视台当前状态：")
    print(f"资金: {tv_station['资金']} 元")
    print(f"声誉: {tv_station['声誉']}")
    print("当前节目列表：")
    for program in tv_station["节目列表"]:
        print(f" - {program}")
    print(f"广告收入: {tv_station['广告收入']} 元")


# 制作新节目
def produce_program():
    print("可制作的节目类型有：")
    for program_type in program_types:
        print(program_type)
    choice = input("请选择要制作的节目类型（输入 '退出' 结束制作）：")
    if choice == "退出":
        return
    if choice not in program_types:
        print("没有这种节目类型，无法制作。")
        return
    cost = program_types[choice]["制作成本"]
    if tv_station["资金"] < cost:
        print("资金不足，无法制作该节目。")
        return
    tv_station["资金"] -= cost
    tv_station["节目列表"].append(choice)
    print(f"成功制作 {choice} 节目，花费 {cost} 元。")


# 播放节目并计算收视率和广告收入
def play_programs():
    total_ratings = 0
    for program in tv_station["节目列表"]:
        base_ratings = program_types[program]["基础收视率"]
        # 声誉影响收视率
        ratings = base_ratings + tv_station["声誉"] // 10
        total_ratings += ratings
        ad_income = ratings * program_types[program]["广告单价"]
        tv_station["广告收入"] += ad_income
        print(f"{program} 节目收视率: {ratings}，广告收入: {ad_income} 元")
    tv_station["资金"] += tv_station["广告收入"]
    print(f"本次播放节目总收视率: {total_ratings}，总广告收入: {tv_station['广告收入']} 元")
    # 高收视率提升声誉，低收视率降低声誉
    if total_ratings > 50:
        tv_station["声誉"] += 5
        print("本次节目收视率不错，电视台声誉提升 5 点。")
    elif total_ratings < 30:
        tv_station["声誉"] -= 3
        print("本次节目收视率较低，电视台声誉下降 3 点。")


# 开展宣传活动提升声誉
def promote_station():
    cost = 10000
    if tv_station["资金"] < cost:
        print("资金不足，无法开展宣传活动。")
        return
    tv_station["资金"] -= cost
    tv_station["声誉"] += 10
    print("成功开展宣传活动，花费 10000 元，电视台声誉提升 10 点。")


# 主游戏循环
while True:
    show_tv_station_status()
    print("\n请选择操作：")
    print("1. 制作新节目")
    print("2. 播放节目")
    print("3. 开展宣传活动")
    print("4. 结束游戏")
    choice = input("请输入选项编号：")
    if choice == "1":
        produce_program()
    elif choice == "2":
        play_programs()
        tv_station["广告收入"] = 0  # 重置广告收入
    elif choice == "3":
        promote_station()
    elif choice == "4":
        print("游戏结束，感谢你的参与！")
        break
    else:
        print("无效的选项，请重新输入。")